<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
class WorkController extends Controller
{

	public function actionList()
	{
            $work = sell::model()->findAll();
		$this->render('worklist',array('work'=>$work));

	}
        public function actionBay()
        {
            $user=new User();

            $id_work = $_GET['id'];
            $work=sell::model()->findByPk($id_work);
          
            $user_bayer=$user->findByPk(Yii::app()->user->getId());

            $user_schet=$user_bayer->schet;
            
            if($user_schet>$work->cost)
            {
                // Прибавка денег продавцу
                // В Случае чего добывить вычет процента в пользу системы
                $file = $work->id_file;

                $user_seller_id = $work->id_user;
               $user_seller=User::model()->findByPk($user_seller_id);
               $schet=$user_seller->schet;
               $schet+=$work->cost;
               $user_seller->schet=$schet;
               $user_seller->save();

               // Вычет денег у покупателя

               $user_schet-=$work->cost;
               $user_bayer->schet=$user_schet;
                $user_bayer->save();
                $this->getlink();
      


            }
            else
            {
               $this->redirect('/work/error');
            }

        }
        function actionError()
        {
            $this->render('error');
        }

        function getlink() {

  // если не передан уникальный ID файла - значит пользователь попал сюда по ошибке
//  if( !isset( $_GET['id'] ) ) {
//    header( 'Location: '.$_SERVER['PHP_SELF'].'?action=fileslist' );
//    //die();
//    echo 'werwer';
//  }
  $id = $_GET['id'];
echo 'werwer';
  // прежде чем генерить временную ссылку, проверяем, что есть такая запись в таблице БД
  //$query = 'SELECT 1 FROM `sell` WHERE id_sell='.$id;
  $res = sell::model()->findAll('id_sell=:id_sell',array(':id_sell'=>$id));
//  if( mysql_num_rows( $res ) == 0 ) {
//    header ( 'HTTP/1.1 404 Not Found' );
//    die();
//  }

 $uniq_id = md5( uniqid(rand(),1));
   $downloads = new downloads();
   $downloads->file_id=$id;
   $downloads->uniq_id=$uniq_id;
   $downloads->puttime=time();;
   $downloads->save();


 $link = '/work/down/id/'.$id.'/code/'.$uniq_id;
  echo '<p>Для загрузки файла пройдите по <a href="'.$link.'">этой ссылке</a>';
  echo 'Ссылка будет действовать в течении 12 часов.</p>';


}

function actionDown()
{
    $id=$_GET['id'];
    $uniq_id=$_GET['code'];
    $this->Download($id,$uniq_id);
}
public function Download($id,$code)
{



  $file = downloads::model()->findAll('file_id=:file_id AND uniq_id=:uniq_id',array(':file_id'=>$id,':uniq_id'=>$code));



            $work=sell::model()->findByPk($id);
            $filename=$work->id_file;



  // если файла нет
//  if( !file_exists( 'files/'.$filename ) ) {
//   // header ( 'HTTP/1.1 404 Not Found' );
//    //die();
//echo '66';
//  }

  // получаем размер файла
//echo '77';
  $fsize = filesize( 'file/sell/'.$filename );
  // дата модификации файла для кеширования
  $ftime = date( 'D, d M Y H:i:s T', filemtime( 'file/sell/'.$filename ) );
  // смещение от начала файла
  $range = 0;

  // пробуем открыть
  $handle = @fopen( 'file/sell/'.$filename, 'rb' );

  // если не удалось
  if( !$handle ){
    header ( 'HTTP/1.1 404 Not Found' );
    die();
  }


    if ( $range ) fseek( $handle, $range );


  // если есть смещение
  if( $range ) {
    header( 'HTTP/1.1 206 Partial Content' );
  } else {
    header( 'HTTP/1.1 200 OK' );
  }

  header( 'Content-Disposition: attachment; filename="'.$filename.'"' );
  header( 'Last-Modified: '.$ftime );
  header( 'Content-Length: '.($fsize-$range) );
  header( 'Accept-Ranges: bytes' );
  header( 'Content-Range: bytes '.$range.'-'.($fsize - 1).'/'.$fsize );

 

  readfile( 'file/sell/'.$filename );

  fclose( $handle );

}
        

}
?>
